package cliente.pagina.contenido.grupo.recurso;

import cliente.pagina.contenido.*;
import cliente.pagina.*;
import comun.constantes.*;
import helpers.grupo.configuracion.HelperConfiguracion;
import helpers.grupo.configuracion.HelperHerramientas;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class ContenidoRecursoGrupoConfirmaOperacion extends ContenidoConfirmaOperacion{

  public ContenidoRecursoGrupoConfirmaOperacion(){
    super();
  }

  public ContenidoRecursoGrupoConfirmaOperacion(Pagina pagina){
    this.setPagina(pagina);
  }

  public String getTitulo(){
    return this.getAccion();
  }

  public String getTituloLink() {
  /**@todo Implement this cliente.pagina.contenido.VistaContenido abstract method*/
  throw new java.lang.UnsupportedOperationException("Method getTituloLink() not yet implemented.");
  }

  protected String getNombrePagina() {
    return "grupo_confirma_operacion.jsp";
  }

  public String getNombreRecurso(){
	  if(this.getPagina() instanceof PaginaGrupo)return RECURSOS.INICIO;
	  else return RECURSOS.GRUPO;
  }

  // en este caso manda a actualizar el o los grupos
  // y pone un mensaje si pudo o no realizar la operacion
  public String getHTMLVista(){
	  this.setPagina(this.getPagina());
	  OperacionesDelConfirmar operacionesDelConfirmar = new OperacionesDelConfirmar(this.getPagina());
	  try{		  
		  //genera el html Procesando....
		  String  html = super.getHTMLVista();
		  String paginaForward = null;
		  String resultadoOperacion="";
		  String accion = this.getPagina().getParameter(PARAMETROS_PAGINAS.ACCION);
		  //System.out.println("En el confirma operacion: "+accion);
		  String estado = ((String)this.getPagina().getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS));
		  String donde = "";
		  if(estado.compareTo(ESTADO_GRUPOS.BORRADOR)==0)
			  donde = "_borradores";
		  else if(estado.compareTo(ESTADO_GRUPOS.ELIMINADO)==0)
			  donde = "_eliminados";
		  else if(estado.compareTo(ESTADO_GRUPOS.FINALIZADO)==0)
			  donde = "_finalizados";
		  //Creacion de Grupos
		  if(accion.compareTo(ACCIONES_A_REALIZAR.CREACION_DE_GRUPOS)==0){
			  resultadoOperacion = operacionesDelConfirmar.creacionGrupos();
		  //Configuracion de grupos
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.CONFIGURACION_DE_GRUPOS)==0){
			 
			  resultadoOperacion = operacionesDelConfirmar.configuracionDeGrupos();
			  //limpiar atributos
			  this.getPagina().getSession().setAttribute(PARAMETROS_PAGINAS.CHECKBOX_HERRAMIENTAS,null);
			  this.getPagina().getSession().setAttribute(PARAMETROS_PAGINAS.TEXTOS_TEMAS_A_DICTAR,null);
			  this.getPagina().getSession().setAttribute(PARAMETROS_PAGINAS.CHECKBOX_GRUPOS_TEMAS_A_DICTAR,null);
			  
			  HelperHerramientas.seConfiguroHerramienta = false;
	//		Configuracion de Herramientas
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.CONFIGURACION_DE_HERRAMIENTAS)==0){
			  resultadoOperacion = operacionesDelConfirmar.configuracionDeHerramientas();
	    	  String grupo_ = "grupo_";
	    	  if(this.getPagina() instanceof PaginaGrupo) grupo_ = "";
	    	  
			  HelperHerramientas.seConfiguroHerramienta = true;
	    	  paginaForward = this.getPagina().getPathPaginas()+grupo_+"configuracion.jsp?"+
					PARAMETROS_PAGINAS.ACCION2+"=nada"+//solo para que el metodo q viene despues funcione bien, ya q considera arrancar con &
					HelperConfiguracion.getHTMLParametrosDeConfiguracion(this.getPagina())+"&";
	    	  
	    	  
		  //Borrado de grupos
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.BORRADO_DE_GRUPOS)==0){
			  resultadoOperacion = operacionesDelConfirmar.borradoDeGrupos();
		  //Completar grupos
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.COMPLETAR_GRUPOS)==0){
			  resultadoOperacion = operacionesDelConfirmar.completarGrupos();		  
		  //Vaciado de grupos
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.VACIADO_DE_GRUPOS)==0){
			  resultadoOperacion = operacionesDelConfirmar.vaciadoDeGrupos(null);
		  //Vaciar grupo
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.VACIAR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.vaciadoDeGrupos(this.getPagina().getIdGrupo());		  
		  //Finalizado de grupos
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.FINALIZAR_VARIOS_GRUPOS)==0){
			  resultadoOperacion = operacionesDelConfirmar.finalizadoDeGrupos();
		  //A Borrador un grupo
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.BORRADOR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.borradorDeGrupos();
			  paginaForward = this.getPagina().getPathPaginas()+"grupo"+donde+".jsp?";
			  if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)!= null)
				  paginaForward +=PARAMETROS_PAGINAS.ID_GRUPO+"="+this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)+"&";
		  //Finalizar un grupo
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.FINALIZAR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.finalizarGrupos();
			  paginaForward = this.getPagina().getPathPaginas()+"grupo"+donde+".jsp?";
			  if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)!= null)
				  paginaForward +=PARAMETROS_PAGINAS.ID_GRUPO+"="+this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)+"&";
		  //Funcionar UN grupo
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.FUNCIONAR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.funcionarGrupo();
			  paginaForward = this.getPagina().getPathPaginas()+"grupo"+donde+".jsp?";
			  if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)!= null)
				  paginaForward +=PARAMETROS_PAGINAS.ID_GRUPO+"="+this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)+"&";
		  //Funcionar grupos
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.FUNCIONAR_VARIOS_GRUPOS)==0){
			  resultadoOperacion = operacionesDelConfirmar.funcionarVariosGrupos();
			  paginaForward = this.getPagina().getPathPaginas()+"grupo"+donde+".jsp?";
			  if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)!= null)
				  paginaForward +=PARAMETROS_PAGINAS.ID_GRUPO+"="+this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO)+"&";
			  //Eliminar un grupo
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.ELIMINAR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.eliminarGrupo();
		  //Ocultar Grupo por el Ojito
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.OCULTAR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.ocultarGrupo();
		  //Visualizar Grupo por el Ojito
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.VISUALIZAR_GRUPO)==0){
			  resultadoOperacion = operacionesDelConfirmar.visualizarGrupo();
		  //Integrando persona por una Invitacion o una Solicitud
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.INTEGRACION_DE_PERSONAS)==0){
			  resultadoOperacion = operacionesDelConfirmar.integracionDePersonas();
		  //Sumario de Grupo
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.SUMARIO_DE_GRUPOS)==0){
			  /*FALTA: No tenemos la partecita que va a hacer Jorge Becerra (J&B)*/
			  resultadoOperacion = operacionesDelConfirmar.sumarioDeGrupos();
	//		Cambiando Lider en Integrantes
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.CAMBIANDO_LIDER)==0){
				resultadoOperacion = operacionesDelConfirmar.cambiandoLider();
				paginaForward = this.getPagina().getPathPaginas()+"grupo_asigna_integrantes.jsp?";
				if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION)!= null)
					paginaForward += PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION+"="+Long.valueOf(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION))+"&";
		  //AGREGANDO Integrantes
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.ASIGNA_INTEGRANTES_AGREGAR)==0){
				resultadoOperacion = operacionesDelConfirmar.asignaIntegrantes();
				String res = "grupo_";
				if(this.getPagina() instanceof PaginaGrupo)
					res="";
				paginaForward = this.getPagina().getPathPaginas()+res+"asigna_integrantes.jsp?";
				if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION)!= null)
					paginaForward += PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION+"="+Long.valueOf(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION))+"&";
				
		  //SACANDO Integrantes
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.ASIGNA_INTEGRANTES_SACAR)==0){
				resultadoOperacion = operacionesDelConfirmar.sacarIntegrantes();
				paginaForward = this.getPagina().getPathPaginas()+"grupo_asigna_integrantes.jsp?";
				if(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION)!= null)
					paginaForward += PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION+"="+Long.valueOf(this.getPagina().getParameter(PARAMETROS_PAGINAS.ID_GRUPO_ASIGNA_CONFIGURACION))+"&";
		  //Venimos de Autoinscripcion comun
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.AUTOINSCRIPCION_COMUN)==0){
			  resultadoOperacion = operacionesDelConfirmar.autoinscripcionComun();
		  //Venimos de Autoinscripcion dirigida
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.AUTOINSCRIPCION_DIRIGIDA)==0){
			  resultadoOperacion = operacionesDelConfirmar.autoinscripcionDirigida();
	//		Venimos de Configurar Autoinscripcion
		  }else if(accion.compareTo(ACCIONES_A_REALIZAR.LISTADO_TEMAS)==0){
			  resultadoOperacion = operacionesDelConfirmar.configuracionAutoInscripcion();
			  //Limpiando datos
			  this.getPagina().getSession().setAttribute(PARAMETROS_PAGINAS.TEXTOS_TEMAS_A_DICTAR,null);
			  this.getPagina().getSession().setAttribute(PARAMETROS_PAGINAS.CHECKBOX_GRUPOS_TEMAS_A_DICTAR,null);
		  }
	
		  String redirige_pagina = this.getPagina().getPathPaginas()+"grupo.jsp?";
		  if(((String)this.getPagina().getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.BORRADOR)==0)
			  redirige_pagina = this.getPagina().getPathPaginas()+"grupo_borradores.jsp?";
		  if(this.getPagina() instanceof PaginaGrupo) redirige_pagina = "index.jsp?";
		  if(accion.compareTo(ACCIONES_A_REALIZAR.INTEGRACION_DE_PERSONAS)==0){
			  //System.out.println(">>>>>>>>>=========ESTANDO EN EL RECURSO GRUPOOOOOOOOOOOOO=======<<<<<<<<<<<<<<<<<");
			  /*PORQUE NUNCA ENTRARIAMOS A ESTE CONFIRMA OPERACION CON INVITACION: if(this.getPagina().getParameter(PARAMETROS_PAGINAS.TIPO_INTEGRACION).compareTo(RECURSOS.INVITACION)==0)
				  redirige_pagina = this.getPagina().getPathPaginas()+"invitaciones.jsp?";
			  else{*/
				  //El caso del if me parace que esta en vano, siempre entrara por el else.
				  String tipoUsuario = operacionesDelConfirmar.obtieneTipoUsuarioPersonaLogueada();
				  if(operacionesDelConfirmar.personaEsIntegranteDelGrupo() || (tipoUsuario.compareTo(TIPO_USUARIOS.ALUMNO)!=0)){
					  redirige_pagina = this.getPagina().getPathPaginas()+"solicitudes.jsp?";
				  }else{
					  	String direccion = "";
					  	if(((String)this.getPagina().getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.BORRADOR)==0)
					  		direccion = "_borradores";
					  	else if(((String)this.getPagina().getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.ELIMINADO)==0)
					  		direccion = "_eliminados";
					  	else if(((String)this.getPagina().getSession().getAttribute(PARAMETROS_PAGINAS.ESTADO_GRUPOS)).compareTo(ESTADO_GRUPOS.FINALIZADO)==0)
					  		direccion = "_finalizados";
					  	if(((Boolean)this.getPagina().getSession().getAttribute(PARAMETROS_PAGINAS.INTERCOMISION)).booleanValue())
					  		redirige_pagina = "../../materia/materia_grupo"+direccion+".jsp?";
					  	else
					  		redirige_pagina = "../comision/comision_grupo"+direccion+".jsp?";	
				  }
			  //}
		  }	  
		  
		  if(paginaForward == null)
			  	paginaForward = redirige_pagina+PARAMETROS_PAGINAS.REGISTRAR_ACCESO+"="+RECURSOS.INICIO+"&";
		  String parametros = PARAMETROS_PAGINAS.ID_AULA+"="+this.getPagina().getIdAula()+
		  					  "&"+PARAMETROS_PAGINAS.ID_ORGANIZACION+"="+((PaginaCurso)this.getPagina()).getIdOrganizacion()+
		  					  "&"+PARAMETROS_PAGINAS.REGISTRAR_ACCESO+"="+RECURSOS.INICIO+
		  					  "&"+PARAMETROS_PAGINAS.ACCION+"="+accion+
		  					  "&"+PARAMETROS_PAGINAS.RESULTADO_OPERACION+"="+resultadoOperacion+
		  					  "&"+PARAMETROS_PAGINAS.REFRESH+"="+new Long((new java.util.Date()).getTime());
		  if(this.getPagina().getIdComision()!=null)
			  parametros += "&"+PARAMETROS_PAGINAS.ID_COMISION+"="+this.getPagina().getIdComision();
		  if(this.getPagina() instanceof PaginaGrupo)
			  parametros += "&"+PARAMETROS_PAGINAS.ID_GRUPO+"="+this.getPagina().getIdGrupo();
		  
		  paginaForward += parametros;
		  html += utils.UtilsGenerarHtml.generarHTMLForward(paginaForward);
		  operacionesDelConfirmar.getHelperRecursoGrupo().commit();
		  return html;
	  } catch (Exception ex) {
	      ex.printStackTrace();
	      operacionesDelConfirmar.getHelperRecursoGrupo().rollback();
	      return  comun.MensajeDeError.ERROR_EN_LA_GENERACION_DE_LA_PAGINA;
	    }	
  }

  //Lo redefino porque necesito sacar los parametros del request que esta en la nueva pagina
  public void setPagina(Pagina pagina){
	  super.setPagina(pagina);
	  if (pagina.getParameter(PARAMETROS_PAGINAS.ACCION)!=null)
		  this.setAccion(pagina.getParameter(PARAMETROS_PAGINAS.ACCION));
  }

  public String getSubcarpetaRecurso(){
	  String subCarpetaRecurso = null;
	  return subCarpetaRecurso;
  }
  
}